package xyz.ssf.cloud.project.system.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import xyz.ssf.cloud.project.system.domain.Role;
import xyz.ssf.cloud.project.system.mapper.RoleMapper;
import xyz.ssf.cloud.project.system.service.IRoleService;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 角色 服务层实现
 */
@Service
public class RoleServiceImpl implements IRoleService {
    
    @Autowired
    private RoleMapper roleMapper;

    /**
     * 查询所有角色
     *
     * @return 角色列表
     */
    @Override
    public List<Role> selectRoleAll() {
        return roleMapper.selectRoleAll();
    }

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    @Override
    public List<Role> selectRolesByUserId(Long userId) {
        return roleMapper.selectRolesByUserId(userId);
    }

    /**
     * 根据用户ID查询角色权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    @Override
    public Set<String> selectRolePermissionByUserId(Long userId) {
        List<Role> roles = roleMapper.selectRolesByUserId(userId);
        Set<String> permissions = new HashSet<>();
        for (Role role : roles) {
            if (role != null && role.getRoleKey() != null) {
                permissions.add(role.getRoleKey());
            }
        }
        return permissions;
    }
} 